package Controlador;

import java.awt.event.ActionEvent;
import Modelo.MAccion;
import java.awt.event.ActionListener;

import javax.swing.JFrame;
import javax.swing.JOptionPane;

import Modelo.MCategoria;
import Vistas.VCategoria;

public class CCategoria implements ActionListener{
	public VCategoria vCategoria;
	public MCategoria mcategoria;
	public MAccion maccion;
	
	public CCategoria(VCategoria vcategoria){
		vCategoria=vcategoria;
	}

		public void actionPerformed(ActionEvent ae) {
			if(ae.getActionCommand().equals(" Agregar ")){
				if(validarCampos()){
					if(validarLetras(vCategoria.getTxtDesc().getText())){
				mcategoria = new MCategoria(Integer.parseInt(vCategoria.getTxtCodCat().getText()),vCategoria.getTxtDesc().getText());
				maccion = new MAccion();
                maccion.registrarCategoria(mcategoria);
                JOptionPane.showMessageDialog(null,"La Categoria se registro exitosamente","Categoria", 
						JOptionPane.INFORMATION_MESSAGE);
					}else
						 JOptionPane.showMessageDialog(null,"Verifique no se encuentren letras","Categoria", 
									JOptionPane.INFORMATION_MESSAGE);
                
					}
				else
					 JOptionPane.showMessageDialog(null,"Debes llenar todos los datos","Categoria", 
								JOptionPane.INFORMATION_MESSAGE);
		}
			
		    if(ae.getActionCommand().equals("  Buscar  ")){
		    	if(!vCategoria.getTxtCodCat().getText().equals("")){
					if (validarCodigo(vCategoria.getTxtCodCat().getText())){
				MCategoria categoria=new MCategoria();
				maccion = new MAccion();
				categoria=maccion.obtenerCategoria(Integer.parseInt(vCategoria.getTxtCodCat().getText()));
				if(categoria!=null)
				vCategoria.getTxtDesc().setText(categoria.getDescripcion());
				else
					JOptionPane.showMessageDialog(null,"La categoria no existe","Categoria", 
								JOptionPane.INFORMATION_MESSAGE);
					}else
						JOptionPane.showMessageDialog(null,"" +
						 		"Intoduzca solo numeros","Categoria", 
									JOptionPane.INFORMATION_MESSAGE);	
				
				}else
					 JOptionPane.showMessageDialog(null,"" +
						 		"Introduzca el codigo de la categoria","Categoria", 
									JOptionPane.INFORMATION_MESSAGE);	
				
			}	
		    
		    if(ae.getActionCommand().equals("Cancelar ")){
		    	vCategoria.getTxtCodCat().setText("");
		    	vCategoria.getTxtDesc().setText("");
		    	vCategoria.getTxtCodCat().requestFocus();
		    }
		    	
		    if(ae.getActionCommand().equals("    Salir     ")){
		    		int opcion = JOptionPane.showConfirmDialog(new JFrame(),"Desea volver al menu anterior?",
		    				     "Mensaje de Confirmacion",JOptionPane.YES_NO_OPTION,
		    				     JOptionPane.QUESTION_MESSAGE);
		    		if (opcion == JOptionPane.YES_OPTION)
		    			vCategoria.dispose();
		    	}    		
    }
		private boolean validarCampos()
		{
			boolean sw=false;
			if ((!vCategoria.getTxtDesc().getText().equals("")))
			    sw=true;
			return sw;
		}
		
		private boolean validarCodigo(String Cod){
			boolean valida=true,encontrado=true;
			int resp;
			String numero="0123456789";
			char caracter;
		    for(int i=0;i<Cod.length();i++){
		    	caracter=Cod.charAt(i);
		        resp=numero.indexOf(caracter);
		    	if(resp==-1)
		    	valida=false;
		    	encontrado=valida;
		      }
			return encontrado;
				
		}
		private boolean validarLetras(String letras){
			boolean valida=true;
			int resp;
			String numero="0123456789";
			char caracter;
			if(letras.length()<60){
		    for(int i=0;i<letras.length();i++){
		    	caracter=letras.charAt(i);
		        resp=numero.indexOf(caracter);
		    	if(resp!=-1 && valida)
		    	valida=false;
		    	i++;
		      }		
		}
			return valida;	
		}
	

}
